RadASM Support¶
RadASM auto-complete / intellisense api files and some design time ModernUI UI controls for RadASM are available to help with using the various ModernUI functions and controls.
RadASM auto-complete / intellisense¶
RadASM can support multiple languages. For developing for x86 it is recommended to use the MASM32 assembler. For x64 development it is recommended to use the UASM assembler.
MASM32 x86 assembler auto-complete / intellisense files:
- masmApiCall.api.txt
- masmApiConst.api.txt
- masmApiStruct.api.txt
- masmMessage.api.txt
- masmType.api.txt
UASM x64 assembler auto-complete / intellisense files:
- Uasm64ApiCall.api.txt
- Uasm64ApiConst.api.txt
- Uasm64ApiStruct.api.txt
- Uasm64Message.api.txt
- Uasm64Type.api.txt
Each .api.txt
file can be opened and the contents copied and pasted into a corresponding .api
file found under the RadASM folder for the particular assembler. Once RadASM is restarted it will read these files and provide the auto-complete / intellisense for ModernUI functions.
RadASM Design Time ModernUI Controls¶
A RAMUIControls.zip file is provided in the ModernUI repository in the release section that contains a collection of the design time ModernUI controls for RadASM. Each control is provided for in a separate dll file.
The current ModernUI controls that have a RadASM IDE control are:
- ModernUI_Button (RAMUIButton.dll)
- ModernUI_CaptionBar (RAMUICaptionBar.dll)
- ModernUI_Checkbox (RAMUICheckbox.dll)
- ModernUI_ProgressBar (RAMUIProgressBar.dll)
- ModernUI_ProgressDots (RAMUIProgressDots.dll)
- ModernUI_SmartPanel (RAMUISmartPanel.dll)
- ModernUI_Spinner (RAMUISpinner.dll)
- ModernUI_Text (RAMUIText.dll)
Installation
- Ensure RadASM is closed before installing the design time ModernUI controls.
- Copy the RAMUIxxxxxxxxx.dll files to your RadASM folder
- Edit RadASM.ini and add the controls to the section entitled
[CustCtrl]
. Each entry should be a unique number in sequential order.
Once completed it should look something like this:
[CustCtrl]
1=RAMUIButton.dll
2=RAMUICaptionBar.dll
3=RAMUICheckbox.dll
4=RAMUIProgressBar.dll
5=RAMUIProgressDots.dll
6=RAMUISmartPanel.dll
7=RAMUIText.dll
8=RAMUISpinner.dll
Usage
Once the design time ModernUI controls are installed (and RadASM is restarted) they will show up as icons in the dialog tools/toolbox toolbar. These provide a visual way of adding the ModernUI controls to your project and setting a few properties
It is important to note that the dll files that contain each ModernUI control is not a full version of the tool, merely enough to provide a visual representation of the tool when added to a dialog. You still have to include the appropriate library and include files AND call to register the ModernUI control before the dialog is created. Typically this registration should be done at the start of your program
For example if you wish to use the ModernUI_CaptionBar control and add it to a dialog, you should also place a call to register this control at start, something like:
start:
Invoke GetModuleHandle,NULL
mov hInstance, eax
Invoke GetCommandLine
mov CommandLine, eax
Invoke InitCommonControls
mov icc.dwSize, sizeof INITCOMMONCONTROLSEX
mov icc.dwICC, ICC_COOL_CLASSES or ICC_STANDARD_CLASSES or ICC_WIN95_CLASSES
Invoke InitCommonControlsEx, offset icc
; Register the control so that when the dialog that contains it is created
; it knows where to find the CaptionBar control.
Invoke MUICaptionBarRegister
Invoke WinMain, hInstance, NULL, CommandLine, SW_SHOWDEFAULT
Invoke ExitProcess, eax
RadASM with UASM¶
The ModernUI x64 Library and ModernUI x64 Controls come with a RadASM project to help build the sources. To fully utilize this you may need to download and install:
and either:
or
- UASM
- WinInc
- 64bit libraries - Can be obtained via: (assuming default installed locations)
- Installed Windows SDK:
\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
- Installed Windows Kit:
\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
- PellesC -
\PellesC\Lib\Win64
- Installed Windows SDK:
- Other Binaries:
- Resource Compiler:
rc.exe
,rcdll.dll
- Resource Converter:
cvtres.exe
,cvtres.exe.config
- Linker & Lib Manager:
lib.exe
,link.exe
,link.exe.config
,msobj120.dll
,mspdb120.dll
,mspdbcore.dll
and the c runtimemsvcr120.dll
- Resource Compiler:
The UASM assembler and all related files (includes, libs, x64 libs, other binaries) should be placed in the appropriate folders so that your installation matches the following folder structure:
\UASM\bin
\UASM\include
\UASM\lib
\UASM\lib\x64
To add support for the UASM assembler to RadASM download and extract the UASM with RadASM package and edit the RadASM.ini file to add UASM32 and UASM64 to the Assembler entry under the Assembler section:
[Assembler]
Assembler=masm,UASM32,UASM64,JWasm,GoAsm,fasm,nasm,html
The RadASM projects for the ModernUI x64 Library and ModernUI x64 Controls should now assemble if all the above steps have been taken.
RadASM Colorized ModernUI Library Types¶
To add syntax color highlighting to the ModernUI library data types, open the RadASM assembler ini files: masm.ini and/or uasm64.ini and go to the following text section:
[KeyWords]
C6=
Append the following data types text to the C6
key in the KeyWords
section:
^HDC ^HBITMAP ^HFONT ^HICON ^HANDLE ^HBRUSH ^HPEN ^MUIWND ^MUIPROPERTIES ^MUIPROPERTY ^MUIPROPERTYVALUE ^MUIVALUE ^LPMUIVALUE ^MUIIT ^MUIIL ^MUIPFS ^MUIIMAGE ^LPMUIIMAGE ^MUICOLORRGB ^MUICOLORARGB ^GPGRAPHICS ^LPGPGRAPHICS ^GPIMAGE ^LPGPIMAGE ^GPRECT ^LPGPRECT ^LPGDIPRECT ^LPRECT ^LPHBITMAP ^LPHDC ^POINTER ^RESID